<?php

namespace App\Http\Controllers\Home;

use App\Exceptions\AdminException;
use App\Http\Controllers\Controller;
use App\Http\Requests\StoreBlogPost;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

class AdminController extends Controller
{

    public function create(){

        return view('admin.create.index');
    }

//    public function store(Request $request){

     public function store(StoreBlogPost $request){  // 使用了中间件验证就要引入中间件
//        $validatedData = $request->validate([
//            'username' => 'required|max:255',
//            'sex' => 'required',
//        ]);

//        $validatedData = $request->validate([
//            'username' => ['required', 'max:255'],
//            'sex' => ['required'],
//        ]);

        // 显示验证错误
//        $input = $request->all();
//        $rule = [
//            'username' => 'required',
//        ];
//        $message = [
//            'username.required' => 'name not allow null'
//        ];
//        $validate = Validator::make($input, $rule, $message);
//        if (!$validate->passes()) {
//            return back()->withErrors($validate);
//        }


        //关于可选字段的注意事项
//        $res =$request->validate([
////            'username' => ['required', 'max:22'],
////            'sex' => ['required'],
////            'vehicle' => 'nullable',  这个字段不被验证
//        ]);
//        dump($res);

         // 通过中间件获取通过验证的数据...
//         $validated = $request->validated();
//         var_dump($validated);

//         可用的验证规则#
//            Accepted
//            Active URL
//            After (Date)
//            After Or Equal (Date)
//            Alpha
//            Alpha Dash
//            Alpha Numeric
//            Array
//            Bail
//            Before (Date)
//            Before Or Equal (Date)
//            Between
//            Boolean
//            Confirmed
//            Date
//            Date Equals
//            Date Format
//            Different
//            Digits
//            Digits Between
//            Dimensions (Image Files)
//            Distinct
//            Email
//            Ends With
//            Exclude If
//            Exclude Unless
//            Exists (Database)
//            File
//            Filled
//            Greater Than
//            Greater Than Or Equal
//            Image (File)
//            In
//            In Array
//             Integer
//            IP Address
//            JSON
//            Less Than
//            Less Than Or Equal
//            Max
//            MIME Types
//            MIME Type By File Extension
//            Min
//            Not In
//            Not Regex
//            Nullable
//            Numeric
//            Password
//            Present
//            Regular Expression
//            Required
//            Required If
//            Required Unless
//            Required With
//            Required With All
//            Required Without
//            Required Without All
//            Same
//            Size
//            Sometimes
//            Starts With
//            String
//            Timezone
//            Unique (Database)
//            URL
//            UUID







    }
}
